package org.jeecg.modules.demo.Kingdee.bank.entity.settlement;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 批量付款请求实体 (SKDLPAAT)
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BatchPaymentRequest {
    
    /**
     * 接口请求代码
     */
    private String action = "SKDLPAAT";
    
    /**
     * 银企直联用户名
     */
    private String userName;
    
    /**
     * 外部请求批次号
     */
    private String externalBatNum;
    
    /**
     * 付款账号
     */
    private String pypartyAccnum;
    
    /**
     * 总笔数
     */
    private Integer totNbr;
    
    /**
     * 总金额(分)
     */
    private Long amt;
    
    /**
     * 币种
     */
    private String currencyID = "CNY";
    
    /**
     * 联动支付
     */
    private String linkPayFlag;
    
    /**
     * 加急审批
     */
    private String urgntAprvFlag;
    
    /**
     * 预约付款
     */
    private String rsrvtnFlag;
    
    /**
     * 业务模式
     */
    private String bizMode;
    
    /**
     * 是否跨行
     */
    private String isInterbnk;
    
    /**
     * 是否准确校验开户行行名
     */
    private String isCheckRcvpartyDepbnkId;
    
    /**
     * 预约时间
     */
    private String rsrvtnTms;
    
    /**
     * 明细校验处理模式
     */
    private String checkMode;
    
    /**
     * 付款明细列表
     */
    @JsonProperty("debitList")
    private List<BatchPaymentDetail> debitList;
    
    /**
     * 批量付款明细
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class BatchPaymentDetail {
        /**
         * 外部请求流水号
         */
        private String externalNum;
        
        /**
         * 付款金额(分)
         */
        private Long debitAmt;
        
        /**
         * 收方账号
         */
        private String rcvpyAccnum;
        
        /**
         * 收方账户名称
         */
        private String rcvpyAccnm;
        
        /**
         * 收方开户行
         */
        private String rcvpartyDepbnkId;
        
        /**
         * 收方联行号
         */
        private String rcvpartyBnkgId;
        
        /**
         * 附言
         */
        private String pscpt;
        
        /**
         * 用途
         */
        private String rmrk;
        
        /**
         * 是否保存收方信息
         */
        private String isSaveRcvInfo;
        
        /**
         * 交易对手类型
         */
        private String txnCntprTp;
        
        /**
         * 付款种类
         */
        private String pyAccTp;
        
        /**
         * 是否跨行
         */
        private String isInterbnk;
        
        /**
         * 是否准确校验开户行行名
         */
        private String isCheckRcvpartyDepbnkId;
    }
}